時光飛逝, 鐵人賽今天已經邁入第 25 天了!!! 在接下來的五天裡我們會介紹使用服務器端語言 (server-side language) 編寫 JSON-based 的 Web 服務。
踏入 server side 之前呢, 先讓我們來回顧一下至今所學到的 Web Service
吧!
可以使用通用協議 (common protocols): 通訊協議, 透過網際網路 (Internet) 調用的軟件功能, 通過聯繫 Web 服務器上的程序來完成的。也就是說, Web 服務允許使用通訊協議/方法在 Web 上的不同應用程序 (applications) 或者是裝置 (devices) 之間進行溝通。 使用 Web 服務, 可以使兩個不同的應用程序或裝置相互溝通並交換訊息。
Medium (媒介)
Format (格式)
被比較廣泛的使用SOAP web service
, RESTful web service (主流的 API 開發方式)
這些應用程序 (applications) 是如何溝通的?
How does the data or infomation flows go from here to there?
How do different applications and devices connect with each other to make users place an order (下訂單), make a reservation (預約定位) or book a flight (訂機票) ? 而使用者只需要輕鬆的點擊畫面或是輸入一些簡單的文字
數據和訊息需透過 Medium (媒介)
從這個 application 被傳輸/流動到另一個 application
數據和訊息傳輸的 Format (格式)
, 通常被普遍使用的兩種格式是 JSON 和 XML
Example of friends data in two different formats: XML and JSON
<friends>
<friend>
<name>Pig</name>
<email>pig@unicorn.com</email>
<address>Pig Village</address>
</friend>
<friend>
<name>Pooh</name>
<email>pooh@unicorn.com</email>
<address>Forest</address>
</friend>
</friends>
b. JSON
{"friends":
[
{"name":"Pig", "email":"pig@unicorn.com", "address":"Pig Village"},
{"name":"Pooh", "email":"pooh@unicorn.com", "address":"Forest"}
]
}
綜合上述兩項不同格式的寫法後, 是不是可以明顯看出 JSON 格式寫法比較簡潔
且更容易讀懂
呢?
Credit: https://www.studytonight.com/post/understanding-what-api-is-and-how-it-works
在以上圖片的情況下,餐廳服務員的角色與 API 在 modern web 上傳遞數據中的角色非常相似, 如同一個服務員在執行一個 API 的功能:
比方說, Web 服務器是所有與網站相關的檔案所在的位置; 瀏覽器或客戶端發送對 HTML 頁面的請求, 接著服務器回應 (respond) 請求的頁面。 也可以說, 瀏覽器可以通過發送 HTTP 請求向服務器請求一些信息, 服務器處理該請求並以 JSON 或 XML 格式作為一個 HTTP response 訊息做適當的回覆回去給網頁瀏覽器。
靜態網站 (Static Sites)
和 動態網站 (Dynamic Sites)
內容是寫死的
, 例如, 一個 jpg 圖片檔或是 pdf 文檔內容是不固定
的, 可以 動態產生內容
, 例如, it 邦幫忙的頁面會推薦使用者各種不一樣的廣告內容, 依據時間和使用者每次的刷新頁面去更新不同的內容
server-side programming
, 也稱為 back-end programming/scripting
Servers 是個 專用電腦 (dedicated computer)
, 用於有效處理數據並委派來自許多客戶端發送的請求,通常是同時進行的。
然而這些任務在客戶端的瀏覽器中是不可能的或不合適的。
之前我們編寫了提供給使用者並且在瀏覽器中運行的程式碼。舉例來說, Javascript 監聽使用者行為然後執行操作 DOM 作為結果的程式碼。
然而, server-side programs 永遠不會提供給使用者。它們在服務器上會不斷地運行,等待請求 (requests), 就像 JS 監聽事件一樣。 然後 server-side programs 將會運行程式碼並且向客戶端做出回應 (respond)。
明天我們會介紹一種可以在 Server-Side 運行 JavaScript 的語言: JS (Node)